/**
 *  全局权限指令需要两个参数 
 *  指令binding.modifiers参数如下
 *  v-power.asd.show：入  power.权限方法需要的字段.需要操作的类型
 *  
 *  指令binding.value参数是判断权限的方法请返回一个布尔型不要带参数这边会注入参数
 *  v-power.asd.show="power"
 */
Vue.directive('power', {
    inserted: function (el, binding, vNode) {
      //参数数组
      let propsList = []
      for (const key in binding.modifiers) {
        propsList.push(key)
      }
      //判断指令类型如果是显示那么直接控制节点显示隐藏
      if (binding.value(propsList[0])) {
        //判断有没权限
        switch (propsList[1]) {
          //判断是什么类型
          case 'show':
            //隐藏还是删除
            if (!binding.value(propsList[1])) {
              el.style.display = 'none'
            }
            break;
          case 'click':
            let strNode = `<div style="position:absolute;width:100%;height:100%;z-index:100;"></div>`
            el.insertAdjacentHTML('afterBegin', strNode)
            el.children[0].addEventListener('click', function (e) {
              alert("您没有此操作的权限！")
              e.stopPropagation()
            })
            break;
          default:
            el.parentNode.removeChild(el)
            break;
        }
      }
    }
  })